@dataknut)Please note that authorship is alphabetical. Contributions are listed below - see github for details and who to blame for what :-).
@dataknut)If you wish to refer to any of the material from this report please cite as:
Report circulation:
Report purpose:
This work is (c) 2020 the University of Southampton.
I usually do energy demand research but in the absence of access to real time demand data on lockdown (unlike during the World Cup) I’m looking at other things.
Data for Southampton downloaded from :
Southampton City Council collects various forms of air quality data at the sites shown in 2.1. Some of these sites feed data to AURN. The AURN data then undergoes a manual check and ratification process.
WHO publishes information on the health consequences and “acceptable” exposure levels for each of these.
Data health warning
The southampton.my-air.uk data used is not cleaned or tested for measurement error. The AURN from https://uk-air.defra.gov.uk/ has been ratified if it is more than 6 months old.
For much more detailed analysis see a longer and very messy data report.
sotonAirDT <- sotonAirDT[obsDate > as.Date("2019-01-01")] # for speed
sotonAirDT[, `:=`(obsDate, lubridate::date(dateTimeUTC))]
sotonAirDT[, `:=`(site, ifelse(site == "Southampton A33", "Southampton A33 AURN data", site))]
sotonAirDT[, `:=`(site, ifelse(site == "Southampton Centre", "Southampton Centre AURN data", site))]
t <- sotonAirDT[!is.na(value), .(from = min(dateTimeUTC), to = max(dateTimeUTC), nObs = .N, nPollutants = uniqueN(pollutant)),
keyby = .(site, source)]
kableExtra::kable(t, caption = "Dates data != NA available by site and measure", digits = 2) %>% kable_styling()
| site | source | from | to | nObs | nPollutants |
|---|---|---|---|---|---|
| Southampton - A33 Roadside (near docks, AURN site) | southampton.my-air.uk | 2019-01-02 | 2020-04-03 07:00:00 | 20003 | 2 |
| Southampton - Background (near city centre, AURN site) | southampton.my-air.uk | 2019-01-02 | 2020-04-03 07:00:00 | 50767 | 5 |
| Southampton - Onslow Road (near RSH) | southampton.my-air.uk | 2019-01-02 | 2020-03-31 09:00:00 | 20353 | 2 |
| Southampton - Victoria Road (Woolston) | southampton.my-air.uk | 2019-01-02 | 2020-04-01 06:00:00 | 13022 | 2 |
| Southampton A33 AURN data | AURN | 2020-01-01 | 2020-04-02 23:00:00 | 15189 | 8 |
| Southampton Centre AURN data | AURN | 2020-01-01 | 2020-04-02 23:00:00 | 19720 | 9 |
Summarise previously downloaded and processed data… Note that this may not be completely up to date.
t <- sotonAirDT[, .(mean = mean(value, na.rm = TRUE)), keyby = .(site, pollutant, source)]
kableExtra::kable(t, caption = "Mean values per site (NaN indicates not measured)") %>% kable_styling()
| site | pollutant | source | mean |
|---|---|---|---|
| Southampton - A33 Roadside (near docks, AURN site) | co | southampton.my-air.uk | NaN |
| Southampton - A33 Roadside (near docks, AURN site) | no2 | southampton.my-air.uk | 29.854411 |
| Southampton - A33 Roadside (near docks, AURN site) | nox | southampton.my-air.uk | NaN |
| Southampton - A33 Roadside (near docks, AURN site) | o3 | southampton.my-air.uk | NaN |
| Southampton - A33 Roadside (near docks, AURN site) | pm10 | southampton.my-air.uk | 17.325983 |
| Southampton - A33 Roadside (near docks, AURN site) | pm2.5 | southampton.my-air.uk | NaN |
| Southampton - A33 Roadside (near docks, AURN site) | so2 | southampton.my-air.uk | NaN |
| Southampton - Background (near city centre, AURN site) | co | southampton.my-air.uk | NaN |
| Southampton - Background (near city centre, AURN site) | no2 | southampton.my-air.uk | 27.403589 |
| Southampton - Background (near city centre, AURN site) | nox | southampton.my-air.uk | NaN |
| Southampton - Background (near city centre, AURN site) | o3 | southampton.my-air.uk | 40.619434 |
| Southampton - Background (near city centre, AURN site) | pm10 | southampton.my-air.uk | 18.694312 |
| Southampton - Background (near city centre, AURN site) | pm2.5 | southampton.my-air.uk | 12.138946 |
| Southampton - Background (near city centre, AURN site) | so2 | southampton.my-air.uk | 5.556158 |
| Southampton - Bitterne | co | southampton.my-air.uk | NaN |
| Southampton - Bitterne | no2 | southampton.my-air.uk | NaN |
| Southampton - Bitterne | nox | southampton.my-air.uk | NaN |
| Southampton - Bitterne | o3 | southampton.my-air.uk | NaN |
| Southampton - Bitterne | pm10 | southampton.my-air.uk | NaN |
| Southampton - Bitterne | pm2.5 | southampton.my-air.uk | NaN |
| Southampton - Bitterne | so2 | southampton.my-air.uk | NaN |
| Southampton - Onslow Road (near RSH) | co | southampton.my-air.uk | NaN |
| Southampton - Onslow Road (near RSH) | no2 | southampton.my-air.uk | 40.416413 |
| Southampton - Onslow Road (near RSH) | nox | southampton.my-air.uk | 78.661653 |
| Southampton - Onslow Road (near RSH) | o3 | southampton.my-air.uk | NaN |
| Southampton - Onslow Road (near RSH) | pm10 | southampton.my-air.uk | NaN |
| Southampton - Onslow Road (near RSH) | pm2.5 | southampton.my-air.uk | NaN |
| Southampton - Onslow Road (near RSH) | so2 | southampton.my-air.uk | NaN |
| Southampton - Redbridge | co | southampton.my-air.uk | NaN |
| Southampton - Redbridge | no2 | southampton.my-air.uk | NaN |
| Southampton - Redbridge | nox | southampton.my-air.uk | NaN |
| Southampton - Redbridge | o3 | southampton.my-air.uk | NaN |
| Southampton - Redbridge | pm10 | southampton.my-air.uk | NaN |
| Southampton - Redbridge | pm2.5 | southampton.my-air.uk | NaN |
| Southampton - Redbridge | so2 | southampton.my-air.uk | NaN |
| Southampton - Victoria Road (Woolston) | co | southampton.my-air.uk | NaN |
| Southampton - Victoria Road (Woolston) | no2 | southampton.my-air.uk | 32.437828 |
| Southampton - Victoria Road (Woolston) | nox | southampton.my-air.uk | 67.846721 |
| Southampton - Victoria Road (Woolston) | o3 | southampton.my-air.uk | NaN |
| Southampton - Victoria Road (Woolston) | pm10 | southampton.my-air.uk | NaN |
| Southampton - Victoria Road (Woolston) | pm2.5 | southampton.my-air.uk | NaN |
| Southampton - Victoria Road (Woolston) | so2 | southampton.my-air.uk | NaN |
| Southampton A33 AURN data | no | AURN | 26.498212 |
| Southampton A33 AURN data | no2 | AURN | 28.963562 |
| Southampton A33 AURN data | nox | AURN | 69.564976 |
| Southampton A33 AURN data | nv10 | AURN | 12.555027 |
| Southampton A33 AURN data | pm10 | AURN | 18.040882 |
| Southampton A33 AURN data | v10 | AURN | 2.579841 |
| Southampton A33 AURN data | wd | AURN | 210.013723 |
| Southampton A33 AURN data | ws | AURN | 5.024321 |
| Southampton Centre AURN data | no | AURN | 11.084252 |
| Southampton Centre AURN data | no2 | AURN | 24.885991 |
| Southampton Centre AURN data | nox | AURN | 41.973399 |
| Southampton Centre AURN data | o3 | AURN | 52.193646 |
| Southampton Centre AURN data | pm10 | AURN | 15.932873 |
| Southampton Centre AURN data | pm2.5 | AURN | 9.675598 |
| Southampton Centre AURN data | so2 | AURN | 3.274498 |
| Southampton Centre AURN data | wd | AURN | 210.013723 |
| Southampton Centre AURN data | ws | AURN | 5.024321 |
Table 3.1 gives an indication of the availability of the different measures.
In this section we present graphical analysis of the previoulsy downloaded data. Note this is just a snapshot of the data available.
From WHO: https://www.who.int/news-room/fact-sheets/detail/ambient-(outdoor)-air-quality-and-health
"As an air pollutant, NO2 has several correlated activities. At short-term, concentrations exceeding 200 μg/m3, it is a toxic gas which causes significant inflammation of the airways.
NO2 is the main source of nitrate aerosols, which form an important fraction of PM2.5 and, in the presence of ultraviolet light, of ozone. The major sources of anthropogenic emissions of NO2 are combustion processes (heating, power generation, and engines in vehicles and ships).
Health effects
Epidemiological studies have shown that symptoms of bronchitis in asthmatic children increase in association with long-term exposure to NO2. Reduced lung function growth is also linked to NO2 at concentrations currently measured (or observed) in cities of Europe and North America."
yLab <- "Nitrogen Dioxide (ug/m3)"
no2dt <- sotonAirDT[pollutant == "no2"]
t <- no2dt[!is.na(value), .(mean = mean(value, na.rm = TRUE), sd = sd(value, na.rm = TRUE), min = min(value,
na.rm = TRUE), max = max(value, na.rm = TRUE), minDate = min(obsDate), maxDate = max(obsDate)), keyby = .(site,
source)]
kableExtra::kable(t, caption = "Summary of NO2 data") %>% kable_styling()
| site | source | mean | sd | min | max | minDate | maxDate |
|---|---|---|---|---|---|---|---|
| Southampton - A33 Roadside (near docks, AURN site) | southampton.my-air.uk | 29.85441 | 21.65616 | 0.00000 | 155.3000 | 2019-01-02 | 2020-04-03 |
| Southampton - Background (near city centre, AURN site) | southampton.my-air.uk | 27.40359 | 16.77908 | 2.30000 | 144.2000 | 2019-01-02 | 2020-04-03 |
| Southampton - Onslow Road (near RSH) | southampton.my-air.uk | 40.41641 | 19.73466 | 3.30000 | 144.5000 | 2019-01-02 | 2020-03-31 |
| Southampton - Victoria Road (Woolston) | southampton.my-air.uk | 32.43783 | 20.57356 | 0.00000 | 147.7000 | 2019-01-02 | 2020-04-01 |
| Southampton A33 AURN data | AURN | 28.96356 | 21.02939 | -2.14200 | 106.4593 | 2020-01-01 | 2020-04-02 |
| Southampton Centre AURN data | AURN | 24.88599 | 16.32597 | 1.90581 | 128.2762 | 2020-01-01 | 2020-04-02 |
Table 4.1 suggests that there may be a few (9) negative values.
Figure 4.1 shows the most recent hourly data.
recentDT <- no2dt[!is.na(value) & obsDate > myParams$recentCutDate]
p <- makeDotPlot(recentDT, xVar = "dateTimeUTC", yVar = "value", byVar = "site", yLab = yLab)
p <- p + scale_x_datetime(date_breaks = "2 day", date_labels = "%a %d %b") + theme(axis.text.x = element_text(angle = 90,
hjust = 1)) + labs(caption = paste0(myParams$gamCap, myParams$lockdownCap, myParams$weekendCap))
# final plot - adds annotations
yMin <- min(recentDT$value)
yMax <- max(recentDT$value)
p <- addLockdownDateTime(p)
addWeekendsDateTime(p)
Figure 4.1: Nitrogen Dioxide levels, Southampton (hourly, recent)
Beware seasonal trends and weather effects
yLab <- "Oxides of Nitrogen (ug/m3)"
noxdt <- sotonAirDT[pollutant == "nox"]
t <- noxdt[!is.na(value), .(mean = mean(value, na.rm = TRUE), sd = sd(value, na.rm = TRUE), min = min(value,
na.rm = TRUE), max = max(value, na.rm = TRUE), minDate = min(obsDate), maxDate = max(obsDate)), keyby = .(site,
source)]
kableExtra::kable(t, caption = "Summary of NOx data") %>% kable_styling()
| site | source | mean | sd | min | max | minDate | maxDate |
|---|---|---|---|---|---|---|---|
| Southampton - Onslow Road (near RSH) | southampton.my-air.uk | 78.66165 | 68.85744 | 4.60000 | 719.7000 | 2019-01-02 | 2020-03-31 |
| Southampton - Victoria Road (Woolston) | southampton.my-air.uk | 67.84672 | 74.29603 | 1.10000 | 848.1000 | 2019-01-02 | 2020-04-01 |
| Southampton A33 AURN data | AURN | 69.56498 | 68.59654 | 0.19699 | 536.7503 | 2020-01-01 | 2020-04-02 |
| Southampton Centre AURN data | AURN | 41.97340 | 54.64460 | 2.29213 | 855.6162 | 2020-01-01 | 2020-04-02 |
Table 4.2 suggests that there may be a few (0) negative values.
Figure 4.2 shows the most recent hourly data.
recentDT <- noxdt[!is.na(value) & obsDate > myParams$recentCutDate]
p <- makeDotPlot(recentDT, xVar = "dateTimeUTC", yVar = "value", byVar = "site", yLab = yLab)
p <- p + scale_x_datetime(date_breaks = "2 day", date_labels = "%a %d %b") + theme(axis.text.x = element_text(angle = 90,
hjust = 1)) + labs(caption = paste0(myParams$gamCap, myParams$lockdownCap, myParams$weekendCap))
# final plot - adds annotations
yMin <- min(recentDT$value)
yMax <- max(recentDT$value)
p <- addLockdownDateTime(p)
addWeekendsDateTime(p)
Figure 4.2: Oxides of nitrogen levels, Southampton (hourly, recent)
Beware seasonal trends and weather effects
From WHO: https://www.who.int/news-room/fact-sheets/detail/ambient-(outdoor)-air-quality-and-health
"SO2 is a colourless gas with a sharp odour. It is produced from the burning of fossil fuels (coal and oil) and the smelting of mineral ores that contain sulfur. The main anthropogenic source of SO2 is the burning of sulfur-containing fossil fuels for domestic heating, power generation and motor vehicles.
Health effects
SO2 can affect the respiratory system and the functions of the lungs, and causes irritation of the eyes. Inflammation of the respiratory tract causes coughing, mucus secretion, aggravation of asthma and chronic bronchitis and makes people more prone to infections of the respiratory tract. Hospital admissions for cardiac disease and mortality increase on days with higher SO2 levels. When SO2 combines with water, it forms sulfuric acid; this is the main component of acid rain which is a cause of deforestation."
yLab <- "Sulphour Dioxide (ug/m3)"
so2dt <- sotonAirDT[pollutant == "so2"]
t <- so2dt[, .(mean = mean(value, na.rm = TRUE), sd = sd(value, na.rm = TRUE), min = min(value, na.rm = TRUE),
max = max(value, na.rm = TRUE)), keyby = .(site)]
kableExtra::kable(t, caption = "Summary of SO2 data") %>% kable_styling()
| site | mean | sd | min | max |
|---|---|---|---|---|
| Southampton - A33 Roadside (near docks, AURN site) | NaN | NA | Inf | -Inf |
| Southampton - Background (near city centre, AURN site) | 5.556158 | 3.854720 | 0.10000 | 30.50000 |
| Southampton - Bitterne | NaN | NA | Inf | -Inf |
| Southampton - Onslow Road (near RSH) | NaN | NA | Inf | -Inf |
| Southampton - Redbridge | NaN | NA | Inf | -Inf |
| Southampton - Victoria Road (Woolston) | NaN | NA | Inf | -Inf |
| Southampton Centre AURN data | 3.274498 | 1.425636 | -3.12656 | 12.51288 |
Figure 4.3 shows the most recent hourly data.
recentDT <- so2dt[!is.na(value) & obsDate > myParams$recentCutDate]
p <- makeDotPlot(recentDT, xVar = "dateTimeUTC", yVar = "value", byVar = "site", yLab = yLab)
p <- p + scale_x_datetime(date_breaks = "2 day", date_labels = "%a %d %b") + theme(axis.text.x = element_text(angle = 90,
hjust = 1)) + labs(caption = paste0(myParams$gamCap, myParams$lockdownCap, myParams$weekendCap))
yMax <- max(recentDT$value)
yMin <- min(recentDT$value)
p <- addLockdownDateTime(p)
addWeekendsDateTime(p)
Figure 4.3: Sulphour Dioxide levels, Southampton (hourly, recent)
Beware seasonal trends and weather effects
From WHO: https://www.who.int/news-room/fact-sheets/detail/ambient-(outdoor)-air-quality-and-health
"Ozone at ground level – not to be confused with the ozone layer in the upper atmosphere – is one of the major constituents of photochemical smog. It is formed by the reaction with sunlight (photochemical reaction) of pollutants such as nitrogen oxides (NOx) from vehicle and industry emissions and volatile organic compounds (VOCs) emitted by vehicles, solvents and industry. As a result, the highest levels of ozone pollution occur during periods of sunny weather. Health effects
Excessive ozone in the air can have a marked effect on human health. It can cause breathing problems, trigger asthma, reduce lung function and cause lung diseases. "
yLab <- "Ozone (ug/m3)"
o3dt <- sotonAirDT[pollutant == "o3"]
t <- o3dt[, .(mean = mean(value, na.rm = TRUE), sd = sd(value, na.rm = TRUE), min = min(value, na.rm = TRUE),
max = max(value, na.rm = TRUE)), keyby = .(site, source)]
kableExtra::kable(t, caption = "Summary of o3 data") %>% kable_styling()
| site | source | mean | sd | min | max |
|---|---|---|---|---|---|
| Southampton - A33 Roadside (near docks, AURN site) | southampton.my-air.uk | NaN | NA | Inf | -Inf |
| Southampton - Background (near city centre, AURN site) | southampton.my-air.uk | 40.61943 | 22.03717 | 0.00000 | 134.7000 |
| Southampton - Bitterne | southampton.my-air.uk | NaN | NA | Inf | -Inf |
| Southampton - Onslow Road (near RSH) | southampton.my-air.uk | NaN | NA | Inf | -Inf |
| Southampton - Redbridge | southampton.my-air.uk | NaN | NA | Inf | -Inf |
| Southampton - Victoria Road (Woolston) | southampton.my-air.uk | NaN | NA | Inf | -Inf |
| Southampton Centre AURN data | AURN | 52.19365 | 21.31721 | 0.74839 | 104.5747 |
Table 4.5 suggests that there may be a few (0) negative values.
Figure 4.4 shows the most recent hourly data.
recentDT <- o3dt[!is.na(value) & obsDate > myParams$recentCutDate]
p <- makeDotPlot(recentDT, xVar = "dateTimeUTC", yVar = "value", byVar = "site", yLab = yLab)
p <- p + scale_x_datetime(date_breaks = "2 day", date_labels = "%a %d %b") + theme(axis.text.x = element_text(angle = 90,
hjust = 1)) + labs(caption = paste0(myParams$gamCap, myParams$lockdownCap, myParams$weekendCap))
yMax <- max(recentDT$value)
yMin <- min(recentDT$value)
p <- addLockdownDateTime(p)
addWeekendsDateTime(p)
Figure 4.4: 03 levels, Southampton (hourly, recent)
Beware seasonal trends and weather effects
From WHO: https://www.who.int/news-room/fact-sheets/detail/ambient-(outdoor)-air-quality-and-health
"PM is a common proxy indicator for air pollution. It affects more people than any other pollutant. The major components of PM are sulfate, nitrates, ammonia, sodium chloride, black carbon, mineral dust and water. It consists of a complex mixture of solid and liquid particles of organic and inorganic substances suspended in the air. While particles with a diameter of 10 microns or less, (≤ PM10) can penetrate and lodge deep inside the lungs, the even more health-damaging particles are those with a diameter of 2.5 microns or less, (≤ PM2.5). PM2.5 can penetrate the lung barrier and enter the blood system. Chronic exposure to particles contributes to the risk of developing cardiovascular and respiratory diseases, as well as of lung cancer.
There is a close, quantitative relationship between exposure to high concentrations of small particulates (PM10 and PM2.5) and increased mortality or morbidity, both daily and over time. Conversely, when concentrations of small and fine particulates are reduced, related mortality will also go down – presuming other factors remain the same. This allows policy-makers to project the population health improvements that could be expected if particulate air pollution is reduced."
PM 10 data: has more sensors and wider coverage than PM2.5
yLab <- "PM 10 (ug/m3)"
pm10dt <- sotonAirDT[pollutant == "pm10"]
t <- pm10dt[, .(mean = mean(value, na.rm = TRUE), sd = sd(value, na.rm = TRUE), min = min(value, na.rm = TRUE),
max = max(value, na.rm = TRUE)), keyby = .(site, source)]
kableExtra::kable(t, caption = "Summary of pm10 data") %>% kable_styling()
| site | source | mean | sd | min | max |
|---|---|---|---|---|---|
| Southampton - A33 Roadside (near docks, AURN site) | southampton.my-air.uk | 17.32598 | 11.387792 | 0.0 | 99.000 |
| Southampton - Background (near city centre, AURN site) | southampton.my-air.uk | 18.69431 | 11.508593 | 0.0 | 252.500 |
| Southampton - Bitterne | southampton.my-air.uk | NaN | NA | Inf | -Inf |
| Southampton - Onslow Road (near RSH) | southampton.my-air.uk | NaN | NA | Inf | -Inf |
| Southampton - Redbridge | southampton.my-air.uk | NaN | NA | Inf | -Inf |
| Southampton - Victoria Road (Woolston) | southampton.my-air.uk | NaN | NA | Inf | -Inf |
| Southampton A33 AURN data | AURN | 18.04088 | 11.342276 | -1.4 | 95.654 |
| Southampton Centre AURN data | AURN | 15.93287 | 9.826833 | 0.8 | 76.400 |
Table 4.5 suggests that there may be a few (1) negative values.
Figure 4.5 shows the most recent hourly data.
recentDT <- pm10dt[!is.na(value) & obsDate > myParams$recentCutDate]
p <- makeDotPlot(recentDT, xVar = "dateTimeUTC", yVar = "value", byVar = "site", yLab = yLab)
p <- p + scale_x_datetime(date_breaks = "2 day", date_labels = "%a %d %b") + theme(axis.text.x = element_text(angle = 90,
hjust = 1)) + labs(caption = paste0(myParams$lockdownCap, myParams$weekendCap))
yMax <- max(recentDT$value)
yMin <- min(recentDT$value)
p <- addLockdownDateTime(p)
addWeekendsDateTime(p)
Figure 4.5: PM10 levels, Southampton (hourly, recent)
Beware seasonal trends and weather effects
From WHO: https://www.who.int/news-room/fact-sheets/detail/ambient-(outdoor)-air-quality-and-health
“Small particulate pollution has health impacts even at very low concentrations – indeed no threshold has been identified below which no damage to health is observed. Therefore, the WHO 2005 guideline limits aimed to achieve the lowest concentrations of PM possible.”
yLab <- "PM 2.5 (ug/m3)"
pm25dt <- sotonAirDT[pollutant == "pm2.5"]
t <- pm25dt[!is.na(value), .(mean = mean(value, na.rm = TRUE), sd = sd(value, na.rm = TRUE), min = min(value,
na.rm = TRUE), max = max(value, na.rm = TRUE)), keyby = .(site, source)]
kableExtra::kable(t, caption = "Summary of pm2.5 data") %>% kable_styling()
| site | source | mean | sd | min | max |
|---|---|---|---|---|---|
| Southampton - Background (near city centre, AURN site) | southampton.my-air.uk | 12.138946 | 9.732824 | 0.000 | 239.100 |
| Southampton Centre AURN data | AURN | 9.675598 | 7.340156 | 0.377 | 45.755 |
Table 4.6 suggests that there may be a few (0) negative values.
Figure 4.6 shows the most recent hourly data.
recentDT <- pm25dt[!is.na(value) & obsDate > myParams$recentCutDate]
p <- makeDotPlot(recentDT, xVar = "dateTimeUTC", yVar = "value", byVar = "site", yLab = yLab)
p <- p + scale_x_datetime(date_breaks = "2 day", date_labels = "%a %d %b") + theme(axis.text.x = element_text(angle = 90,
hjust = 1)) + labs(caption = paste0(myParams$gamCap, myParams$weekendCap, "\nNB: There is no WHO PM2.5 hourly threshold"))
yMax <- max(recentDT$value)
yMin <- min(recentDT$value)
p <- addLockdownDateTime(p)
addWeekendsDateTime(p)
Figure 4.6: PM2.5 levels, Southampton (hourly, recent)
Beware seasonal trends and weather effects
Several of these datasets suffer from missing data. This is visualised below.
# dt,xvar, yvar,fillVar, yLab
p <- makeTilePlot(no2dt, xVar = "dateTimeUTC", yVar = "site", fillVar = "value", yLab = yLab)
p
Figure 5.1: Nitrogen Dioxide data availability and levels over time
# dt,xvar, yvar,fillVar, yLab
p <- makeTilePlot(noxdt, xVar = "dateTimeUTC", yVar = "site", fillVar = "value", yLab = yLab)
p
Figure 5.2: Oxides of nitrogen data availability and levels over time
# dt,xvar, yvar,fillVar, yLab
p <- makeTilePlot(so2dt, xVar = "dateTimeUTC", yVar = "site", fillVar = "value", yLab = yLab)
p
Figure 5.3: Sulphour Dioxide data availability and levels over time
p <- makeTilePlot(o3dt, xVar = "dateTimeUTC", yVar = "site", fillVar = "value", yLab = yLab)
p
Figure 5.4: Availability and level of o3 data over time
p <- makeTilePlot(pm10dt, xVar = "dateTimeUTC", yVar = "site", fillVar = "value", yLab = yLab)
p
Figure 5.5: Availability and level of PM 10 data over time
p <- makeTilePlot(pm25dt, xVar = "dateTimeUTC", yVar = "site", fillVar = "value", yLab = yLab)
p
Figure 5.6: Availability and level of PM 10 data over time
Report generated using knitr in RStudio with R version 3.6.3 (2020-02-29) running on x86_64-apple-darwin15.6.0 (Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64).
t <- proc.time() - myParams$startTime
elapsed <- t[[3]]
Analysis completed in 43.45 seconds ( 0.72 minutes).
R packages used:
Arino de la Rubia, Eduardo, Hao Zhu, Shannon Ellis, Elin Waring, and Michael Quinn. 2017. Skimr: Skimr. https://github.com/ropenscilabs/skimr.
Dowle, M, A Srinivasan, T Short, S Lianoglou with contributions from R Saporta, and E Antonyan. 2015. Data.table: Extension of Data.frame. https://CRAN.R-project.org/package=data.table.
Garnier, Simon. 2018. Viridis: Default Color Maps from ’Matplotlib’. https://CRAN.R-project.org/package=viridis.
Grolemund, Garrett, and Hadley Wickham. 2011. “Dates and Times Made Easy with lubridate.” Journal of Statistical Software 40 (3): 1–25. http://www.jstatsoft.org/v40/i03/.
Müller, Kirill. 2017. Here: A Simpler Way to Find Your Files. https://CRAN.R-project.org/package=here.
Wickham, Hadley. 2009. Ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York. http://ggplot2.org.
Zhu, Hao. 2018. KableExtra: Construct Complex Table with ’Kable’ and Pipe Syntax. https://CRAN.R-project.org/package=kableExtra.